package com.bdqn.demo;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisAPI {
    private static JedisPool jedisPool;
    static {
        //创建并配置连接池配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(50);
        config.setMaxIdle(10);
        config.setMinIdle(7);
        config.setMaxWaitMillis(1000);//获取资源的等待时间
        config.setTestOnBorrow(true);//获取资源时是否验证资源的有效性
        //创建JEDIS连接池
        jedisPool = new JedisPool(config,//连接池配置对象
                "127.0.0.1",//Redis服务器地址
                6379,//Redis服务器端口
                10000,//连接超时时间
                "123456",//Redis密码
                0);//数据库索引
    }//static结束
    public void destroy() {
        if (!(jedisPool == null || jedisPool.isClosed())) {
            jedisPool.close();//关闭连接池
        }
    }
    public boolean set(String key,String value) {
        Jedis jedis=null;
        try {
            jedis = jedisPool.getResource();
            jedis.set(key, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }
    public boolean set(String key,int seconds,String value) {
        Jedis jedis=null;
        try {
            jedis = jedisPool.getResource();
            jedis.setex(key, seconds, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return false;
    }

    /**
     * 判断某个key是否存在
     * @param key
     * @return
     */
    public boolean exists(String key) {
        Jedis jedis=null;
        try {
            jedis = jedisPool.getResource();
            return jedis.exists(key);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return false;
    }

    /**
     * 获取连接
     * @param key
     * @return
     */
    public String get(String key) {
        String value=null;
        Jedis jedis=null;
        try {
            jedis = jedisPool.getResource();
            return jedis.get(key);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return value;
    }
    public Long ttl(String key){
        Jedis jedis=null;
        try {
            jedis = jedisPool.getResource();
            return jedis.ttl(key);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return (long) -2;
    }
    /**
     * 删除
     */
    public void delete(String key) {
        Jedis jedis=null;
        try {
            jedis = jedisPool.getResource();
            jedis.del(key);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }
}
